<html>
<head><meta charset="utf-8"><title>Lezer · t-compiler/rust-analyzer · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/index.html">t-compiler/rust-analyzer</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Lezer.html">Lezer</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="204205861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Lezer/near/204205861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Lezer.html#204205861">(Jul 17 2020 at 13:32)</a>:</h4>
<p>Interesting post about Lezer -- Tree Sitter for JavaScript: <a href="https://marijnhaverbeke.nl/blog/lezer.html">https://marijnhaverbeke.nl/blog/lezer.html</a></p>
<p>I especially like this idea: <a href="https://marijnhaverbeke.nl/blog/lezer.html#buffer-trees">https://marijnhaverbeke.nl/blog/lezer.html#buffer-trees</a></p>
<p>Basicially, for small subtrees, we store green subtree as a single array</p>
<p>cc <span class="user-mention" data-user-id="132829">@Christopher Durham</span></p>



<a name="204365204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Lezer/near/204365204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christopher Durham <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Lezer.html#204365204">(Jul 19 2020 at 18:47)</a>:</h4>
<p>There's definitely some interesting concepts in here that I'd like to experiment with. Unfortunately, I don't know at a glance how simple it will be to get working with Rust's static GC rather than a fully dynamic GC, and it's definitely enough different from how rowan/sorbus are set up that it will require another complete restructuring of the tree <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="204365256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Lezer/near/204365256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christopher Durham <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Lezer.html#204365256">(Jul 19 2020 at 18:48)</a>:</h4>
<p>My opinion: sorbus's tree is a good incremental improvement over rowan's current, and solves the <strong><em>O</em>(<em>n</em>)</strong> <code>SyntaxPtr</code> problem, so we should work on getting sorbus integrated with the current design first, then I can look at using some of the ideas from tree-sitter and lezer.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>